// 函数可选参数

// 模拟 数组的slice 方法的参数传递形式

function mySlice(start?: number, end?: number): number[] {
  return [1, 23];
}

function mySlice2(start: number, end: number): number[] {
  return [1, 23];
}

// 都是合法的
mySlice(1);
mySlice(1);
mySlice(1, 2);

//
mySlice2(1, 2);

// 必须参数不能出现在可选参数后边
function mySlice3(t: number, start?: number, end?: number): number[] {
  return [1, 23];
}

// 如果是参数默认值的形式，识别位可选参数
function mySlice4(t: number, start?: number, end: number = 0): number[] {
  return [1, 23];
}
